import select
import socket
import sys
import queue
from queue import Queue


# 创建一个socket连接
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setblocking(False)

# 绑定IP地址和端口号
server_address = ('localhost', 8800)
server.bind(server_address)
print("服务器已启动http://localhost:8800/")

# 监听连接数
server.listen(5)

# 消息队列 用于记录客户端发来的消息
message_queues = {}

TIMEOUT = 1000  # 设置为1秒

READ_ONLY = select.POLLIN | select.POLLPRI | select.POLLHUP | select.POLLERR
READ_WRITE = READ_ONLY | select.POLLOUT

poller = select.poll()
# 注册server端socket  要监听的事件类型为 读
poller.register(server, READ_ONLY)

"""
由于poll()返回包含套接字文件描述符和事件标志的元组列表，因此需要从文件描述符号到对象的映射才能从套接字中读取或写入该套接字。
"""
fd_to_socket = { server.fileno(): server,}

sys.stderr